package org.hank.demoproject.httphelper

import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.Interceptor
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.Request
import okhttp3.RequestBody
import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.Response


//  ┏┓　　　┏┓
//┏┛┻━━━┛┻┓
//┃　　　　　　　┃
//┃　　　━　　　┃
//┃　┳┛　┗┳　┃
//┃　　　　　　　┃
//┃　　　┻　　　┃
//┃　　　　　　　┃
//┗━┓　　　┏━┛
//    ┃　　　┃                  神兽保佑
//    ┃　　　┃                  永无BUG！
//    ┃　　　┗━━━┓
//    ┃　　　　　　　┣┓
//    ┃　　　　　　　┏┛
//    ┗┓┓┏━┳┓┏┛
//      ┃┫┫　┃┫┫
//      ┗┻┛　┗┻┛
/**
 *@auth: Hank
 *邮箱: cs16xiaoc1@163.com
 *创建时间: 2023/6/17 16:43
 *描述:
 */
class MyInterceptor :Interceptor {
    override fun intercept(chain: Interceptor.Chain): Response {
        var request = chain.request()

        // 修改Header
        val builder: Request.Builder = request.newBuilder()
            .header("User-Agent", "My User Agent")
            .header("Accept-Language", "zh-CN,zh;q=0.9")

        // 修改BaseUrl
        val baseUrl = "https://www.example.com".toHttpUrl()
        val newUrl = baseUrl.newBuilder()
            .addPathSegment("/api=1/")
            .build()
        var newRequest: Request = builder.url(newUrl).build()

        // 修改Body
        var requestBodyStr = ""
        if (request.body != null) {
            requestBodyStr = request.body.toString()
        }
        var newRequestBody = (requestBodyStr+"123123").toRequestBody("application/json".toMediaType())
        newRequest = newRequest.newBuilder().post(newRequestBody).build()

        return chain.proceed(newRequest)
    }
}